import { CustomTableQuestion, InputQuestion, QuestionBase, SelectQuestion, TextQuestion, TitleQuestion } from '@/components/public-template';
import { TextTable } from '@/components/public-template';
import { TableBase } from '@/components/public-template';
import { Api as ApiStatement } from '@/config/api/watermark';
import { Api as ApiSystem } from '@/config/api/system';
import { regExp } from '@/utils/regExp';

class HomeService {
  getQuestions(isSecendLev) {
    const questions: QuestionBase<any>[] = [
      new TextQuestion({
        key: 'id',
        hide: true,
        value: null
      }),
      new InputQuestion({
        key: 'name',
        label: '文件夹名称',
        required: true,
        prompt: '请输入，长度不可超过100个字符',
        reg: regExp.len100,
        value: null
      }),
      new TextQuestion({
        key: 'code',
        label: '文件编码',
        value: null
      }),
      new TextQuestion({
        key: 'size',
        label: '大小',
        value: null
      }),
      new TextQuestion({
        key: 'projectCode',
        label: '项目编码',
        value: null
      }),
      new SelectQuestion({
        key: 'watermarkingId',
        value: null,
        label: '电子水印',
        type: 'search',
        state: {
          url: ApiStatement.watermarkPage,
          protType: 'post',
          nameKey: 'name',
          nameValue: 'id',
          params: {
            pageNumber: 1,
            pageSize: 999
          }
        }
      })
      // new TitleQuestion({
      //   label: '权限分配',
      //   state: { noShrink: true },
      //   hidden: !isSecendLev
      // }),
      // new CustomTableQuestion({
      //   key: 'projectFilePermissionDTOS',
      //   value: [],
      //   state: {
      //     grid: 24,
      //     fullLine: true,
      //     isAdd: true,
      //     default: {
      //       index: null,
      //       permission: null,
      //       memberIds: []
      //     },
      //     columns: [
      //       {
      //         width: '80px',
      //         title: '序号',
      //         type: 'index'
      //       },
      //       {
      //         width: '150px',
      //         title: '权限',
      //         key: 'permission',
      //         type: 'select',
      //         state: {
      //           filterName: 'FILE_PERMISSION'
      //         }
      //       },
      //       {
      //         title: '员工',
      //         key: 'memberIds',
      //         type: 'tree-select',
      //         width: 300,
      //         state: {
      //           url: ApiSystem.orgTreeDataSubject,
      //           treeMultiple: true,
      //           nameKey: 'name',
      //           nameValue: 'id',
      //           nameChildren: 'childOrg',
      //           protType: 'post',
      //           childrenLevel: {
      //             nameKey: 'nickName',
      //             nameValue: 'id',
      //             nameChildren: 'subjectSimpleList'
      //           }
      //         }
      //       }
      //     ]
      //   },
      //   hidden: !isSecendLev
      // })
    ];
    return questions;
  }
  getViewQuestions(isSecendLev, data, level) {
    const questions: QuestionBase<any>[] = [
      new TextQuestion({
        key: 'name',
        label: '文件夹名称',
        value: null
      }),
      new TextQuestion({
        key: 'code',
        label: '文件编码',
        value: null
      }),
      new TextQuestion({
        key: 'size',
        label: '大小',
        value: null
      }),
      new TextQuestion({
        key: 'projectCode',
        label: '项目编码',
        value: null
      }),
      new TextQuestion({
        key: 'watermarkingIdName',
        label: '电子水印',
        hidden: level === 0 ? false : true,
        value: null
      })
      // new TitleQuestion({
      //   label: '权限分配',
      //   state: { noShrink: true },
      //   hidden: !isSecendLev
      // }),
      // new CustomTableQuestion({
      //   key: 'projectFilePermissionResps',
      //   value: data,
      //   type: 'text',
      //   state: {
      //     grid: 24,
      //     fullLine: true,
      //     isAdd: false,
      //     columns: [
      //       {
      //         width: '80px',
      //         title: '序号',
      //         type: 'index'
      //       },
      //       {
      //         width: '150px',
      //         title: '权限',
      //         key: 'permission',
      //         type: 'dictionary',
      //         state: {
      //           filterName: 'FILE_PERMISSION',
      //           valueType: 'string'
      //         }
      //       },
      //       {
      //         title: '员工',
      //         key: 'memberNames',
      //         type: 'static',
      //         width: 300
      //       }
      //     ]
      //   },
      //   hidden: !isSecendLev
      // })
    ];
    return questions;
  }
  getTables() {
    const tables: TableBase<any>[] = [
      new TextTable({
        key: 'num',
        value: '序号',
        type: 'index',
        columns: {
          width: 70
        }
      }),
      new TextTable({
        key: 'lastStatus',
        value: '变更前状态',
        type: 'dictionary',
        state: {
          filterName: 'BOX_STATUS'
        }
      }),
      new TextTable({
        key: 'changeStatus',
        value: '变更后状态',
        type: 'dictionary',
        state: {
          filterName: 'BOX_STATUS'
        }
      }),
      new TextTable({
        key: 'reason',
        value: '状态变更原因'
      }),
      new TextTable({
        key: 'creatorName',
        value: '操作人'
      }),
      new TextTable({
        key: 'modifiedTime',
        value: '操作时间'
      })
    ];
    return tables;
  }
}

export default new HomeService();
